package com.punai.customer.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.punai.customer.domain.CusVersionsDiscrepancy;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 版本信息差异Mapper接口
 *
 * @author zxw
 * @date 2022-12-13
 */
public interface CusVersionsDiscrepancyMapper extends BaseMapper<CusVersionsDiscrepancy>
{
    /**
     * 查询版本信息差异
     *
     * @param id 版本信息差异主键
     * @return 版本信息差异
     */
    public CusVersionsDiscrepancy selectStaVersionsDiscrepancyById(Long id);

    /**
     * 查询版本信息差异列表
     *
     * @param staVersionsDiscrepancy 版本信息差异
     * @return 版本信息差异集合
     */
    public List<CusVersionsDiscrepancy> selectStaVersionsDiscrepancyList(CusVersionsDiscrepancy staVersionsDiscrepancy);


    /**
     * 删除版本信息差异
     *
     * @param id 版本信息差异主键
     * @return 结果
     */
    public int deleteStaVersionsDiscrepancyById(Long id);

    /**
     * 批量删除版本信息差异
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStaVersionsDiscrepancyByIds(Long[] ids);

    String getLastPublishId(@Param("type") String type, @Param("companyId") Long companyId);

    void publishFbToSta(@Param("specIdsStr") String specIds, @Param("companyId") Long companyId,@Param("versionId")String versionId);

    void publishGxToSta(@Param("specIdsStr") String specIds, @Param("companyId") Long companyId,@Param("versionId")String versionId);

    void recordFbDifference(@Param("specIds") String specIds, @Param("companyId") Long companyId, @Param("versionId") String versionId);

    void recordGxDifference(@Param("specIds") String specIds, @Param("companyId") Long companyId, @Param("versionId") String versionId);

    void recordClDifference(@Param("companyId") Long companyId, @Param("versionId") String versionId);

    void recordJxDifference(@Param("companyId") Long companyId, @Param("versionId") String versionId);

    List<CusVersionsDiscrepancy> queryContrast(@Param("types") List<String> types,@Param("opType") String opType, @Param("specIds")String specIds, @Param("companyId")Long companyId);

    List<CusVersionsDiscrepancy> queryContrastTwo(@Param("type") String types,@Param("opType") String opType, @Param("companyId")Long companyId);

    void recodeGx(@Param("companyId") Long companyId);

    void recodeFb(@Param("companyId") Long companyId);
}
